package ltd.bugs.cute.access.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import ltd.bugs.cute.access.model.IpAccess;

@Repository
public interface IpAccessDAO {

  /**
   * 增加ip配置
   * 
   * @param ipAccess
   */
  void add(IpAccess ipAccess);

  /**
   * 修改服务器IP配置信息
   * 
   * @param ipAccess
   */
  void update(IpAccess ipAccess);

  /**
   * 删除服务器配置信息
   * 
   * @param id
   */
  void delete(long id);

  /**
   * 通过客户id删除
   * 
   * @param clientId
   */
  void deleteByClientId(long clientId);

  /**
   * 通过机构id和IP获取对应的IP配置信息，用于判断是否在白名单内
   * 
   * @param clientId
   * @param type
   * @param ip
   * @return
   */
  IpAccess get(@Param("clientId") long clientId, @Param("ip") String ip);

  /**
   * 根据id获取对应的IP配置信息
   * 
   * @param id
   * @return
   */
  IpAccess getById(long id);

  /**
   * 根据clientId获取列表
   * 
   * @param clientId
   * @return
   */
  List<IpAccess> getByClientId(long clientId);
}
